In computer processing, sometimes deadlocks occur when a plurality of processing units such as processes or threads that are performing parallel processing each waiting for the others to end their processing, while none of the processing is able to end. For example, when a plurality of processing units are updating data that is contained in the same data file or database table, exclusive control is performed in which the data is locked so that it cannot be updated by other processing units in order to maintain data consistency. In this case, there are instances when the processing becomes stalled because the plurality of processing units are each waiting for the data locked by the others to be released.
In order to avoid this type of deadlock, Patent document 1, for example, discloses a technology which requires all of the data to be updated firstly locked, and then updated, in case that data is updated in a plurality of files in which there is a possibility of a deadlock occurring. Patent document 2 discloses a technology in which the data to be updated is read in a virtual area, and after performing arithmetic processing in the virtual area, the data is locked so that only the calculation results are reflected in the data.